package algo3c3g5;


import java.util.ArrayList
import componentes.*;

Public class MetodosAuto {
   
   /* Atributos */
   Chasis chasis;
   Motor motor;
   Carburador carburador;
   Caja caja;
   Ruedas ruedas;
   
   /*Constructor*/
   public Auto(){
      chasis = null;
      motor = null;
      carburador = null;
      caja = null;
      ruedas = null;
   }
   
   public void agregarComponente(Componente componente) throws componenteYaColocadoException{
      
      if (componente instance of (Chasis)){
           if (chasis == null) chasis = (Chasis)componente;
            else throw new componenteYaColocadoException();
      }
      if (componente instance of (Motor)){
           if (motor == null) motor = (Motor)componente;
            else throw new componenteYaColocadoException();
      }
      if (componente instance of (Carburador)){
           if (carburador == null) carburador = (Carburador)componente;
            else throw new componenteYaColocadoException(); 
      }
      if (componente instance of (Caja)){
           if (caja == null) caja = (Caja)componente;
            else throw new componenteYaColocadoException();
      }
      if (componente instance of (Ruedas)){
           if (ruedas == null) ruedas = (Ruedas)componente;
            else throw new componenteYaColocadoException();
      }
      return;     
   }
   
   public Componente quitarComponente(String componente) throws componenteNoColocadoException{
      Componente componente = new Componente();
      
      if (chasis =! null){
         if (componente == chasis.getTipo()){
         componente = (Componente)chasis;
         chasis = null;
         }
      }
      if (motor =! null){
         if (componente == motor.getTipo()){
         componente = (Componente)motor;
         motor = null;
         }
      }
      if (caja =! null){
         if (componente == caja.getTipo()){
         componente = (Componente)caja;
         caja = null;
         }
      }
      if (carburador =! null){
         if (componente == carburador.getTipo()){
         componente = (Componente)carburador;
         carburador = null;
         }
      }
      if (ruedas =! null){
         if (componente == ruedas.getTipo()){
         componente = (Componente)ruedas;
         ruedas = null;
         }
      }
      if (componente == null) throw new componenteNoColocadoException();
      return componente;
            
   }
      
      
      
 
   
   public ArrayList listarComponentes(){
      ArrayList lista = new ArrayList();
      
      if (chasis != null) lista.add(chasis);
      if (motor != null) lista.add(motor);
      if (carburador != null) lista.add(carburador);
      if (caja != null) lista.add(caja);
      if (ruedas != null) lista.add(ruedas);
      
      return lista;
   }
   
   public boolean autoCompleto(){
         if (chasis == null || motor == null || carburador == null || caja == null || ruedas == null) return false;
            else return true;
   }

   
}   